#!/usr/bin/env node

const server = require('net').createServer(),
        log = console.log,
        fs = require('fs')

server.on('connection', socket => {
    log('new connection from', socket.remoteAddress)
    socket.setEncoding('utf8')
    socket.on('data', data => {
        let cmd = data.slice(0, data.length-2)
        log(socket.remoteAddress + ':' + socket.remotePort + ' > ' + cmd)
        switch(cmd) {
            case 'ls': {
                let files = fs.readdirSync(__dirname)
                files.forEach(f => {
                    socket.write(f + '\r\n')
                });
                break
            }
            case 'quit': {
                server.close()
                process.exit()
                break
            }
            default: {
                break
            }
        }
    })

    socket.on('end', () => {
        log(socket.remoteAddress, 'disconnected');
    })
}).listen(8080, () => {
    log('TCP server is listening on port 8080')
})